package hcn.api.service.brandnew.zhenliao;

import ctd.controller.exception.ControllerException;
import ctd.util.annotation.RpcService;
import hcn.protocol.base.DepartmentListReq;
import hcn.protocol.base.DepartmentListResp;
import hcn.protocol.brandnew.zhenliao.yaopin.*;

/**
 * 平台消息模型/公用/v4.0/诊疗类业务/药品
 *
 * @author enjoyLife
 */
public interface YaopinService {


    /**
     * 处方组套列表查
     */
    @RpcService
    QueryPrescriptionSetListResponse queryPrescriptionSetList(QueryPrescriptionSetListRequest req) throws ControllerException;


    /**
     * 门诊处方明细查
     */
    @RpcService
    GetPrescriptionDetailResponse getPrescriptionDetail(GetPrescriptionDetailRequest req) throws ControllerException;


    /**
     * 同步诊断字典
     */
    @RpcService
    SyncDiagnosticInformationResponse syncDiagnosticInformation(SyncDiagnosticInformationRequest req) throws ControllerException;


    /**
     * 诊疗价格信息查询
     */
    @RpcService
    QueryTreatmentResponse queryTreatment(QueryTreatmentRequest req) throws ControllerException;


    /**
     * 发药记录信息查询
     */
    @RpcService
    DispensingRecordResponse dispensingRecord(DispensingRecordRequest req) throws ControllerException;


    /**
     * 处方审核信息提
     */
    @RpcService
    AuditPrescriptionResponse auditPrescription(AuditPrescriptionRequest req) throws ControllerException;


    /**
     * 获取药房药品信
     */
    @RpcService
    SyncDrugInformationResponse syncDrugInformation(SyncDrugInformationRequest req) throws ControllerException;


    /**
     * 处方组套明细查
     */
    @RpcService
    GetPrescriptionSetDetailResponse getPrescriptionSetDetail(GetPrescriptionSetDetailRequest req) throws ControllerException;

    /**
     * 病区列表查
     */
    @RpcService
    ListPatientAreasResponse listPatientAreas(ListPatientAreasRequest req) throws ControllerException;

    /**
     * 历史处方查
     */
    @RpcService
    GetHistoryPrescriptionResponse getHistoryPrescription(GetHistoryPrescriptionRequest req) throws ControllerException;


    /**
     * 同步使用频次信
     */
    @RpcService
    GetDrugFrequencyResponse getDrugFrequency(GetDrugFrequencyRequest req) throws ControllerException;


    /**
     * 门诊处方信息查
     */
    @RpcService
    GetPrescriptionInformationResponse getPrescriptionInformation(GetPrescriptionInformationRequest req) throws ControllerException;


    /**
     * 同步药品用法信
     */
    @RpcService
    GetDrugUsageResponse getDrugUsage(GetDrugUsageRequest req) throws ControllerException;


    /**
     * 同步药品煎法信
     */
    @RpcService
    GetDrugDecoctionResponse getDrugDecoction(GetDrugDecoctionRequest req) throws ControllerException;


    /**
     * 用药信息查询
     */
    @RpcService
    PtsResponse pts(PtsRequest req) throws ControllerException;


    /**
     * 用药信息查询
     */
    @RpcService
    GetUseDrugInfoResponse getUseDrugInfo(GetUseDrugInfoRequest req) throws ControllerException;


    /**
     * 用药信息查询
     */
    @RpcService
    QueryHistoryPrescriptionListResponse queryHistoryPrescriptionList(QueryHistoryPrescriptionListRequest req) throws ControllerException;


    /**
     * 门诊审方列表查
     */
    @RpcService
    GetReasonAndWarningResponse getReasonAndWarning(GetReasonAndWarningRequest req) throws ControllerException;


    /**
     * 门诊审方列表查
     */
    @RpcService
    ListRecordResponse listRecord(ListRecordRequest req) throws ControllerException;


    /**
     * 同步药品脚注信
     */
    @RpcService
    GetDrugFootNoteResponse getDrugFootNote(GetDrugFootNoteRequest req) throws ControllerException;


    /**
     * 药品价格信息查询
     */
    @RpcService
    QueryDrugsResponse queryDrugs(QueryDrugsRequest req) throws ControllerException;


    /**
     * 药品价格信息查询
     */
    @RpcService
    QueryDrugstoreListResponse queryDrugstoreList(QueryDrugstoreListRequest req) throws ControllerException;


    /**
     * 通过机构代码查询科室列表
     * @param req
     * @return
     * @throws ControllerException
     */
    @RpcService
    DepartmentListResp getDepartmentList(DepartmentListReq req) throws ControllerException;


}
